﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace NetDh.Lib
{
    /*此类无用。Acton如果有异步请求，则很难使用此类，因此作废。*/

    /// <summary>
    /// 用户Http请求身份信息上下文。注意：只适用于同一http请求中（同一线程）的上下文，不适用于此http请求中创建的异步线程处理（此时可以把Token当参数传给异步线程即可）。
    /// </summary>
    public class IdentityHttpContext
    {
        //唯一实例
        public static IdentityHttpContext Current { get; } = new IdentityHttpContext();

        //每个线程一个实例
        private ThreadLocal<UserToken> _currentUserToken = new ThreadLocal<UserToken>();
        /// <summary>
        /// 当前Http请求的用户Token信息。
        /// </summary>
        public UserToken Token
        {
            get { return _currentUserToken.Value; }
            set { _currentUserToken.Value = value; }
        }
        public void Clear()
        {
            _currentUserToken.Value = null;
        }
    }
}
